import datetime
import time
def main():
    decorator(test1, seconds=1)  # 无参数函数
    put = decorator(test2, seconds=1)  # 带返回值函数
    print("test2输出：{}".format(put))
    decorator(test3, {1, 0.1}, seconds=1.5)  # 输入普通参数函数
def decorator(function, *parameters, seconds=0.0):  # decorator函数：函数名，函数参数，seconds=int
    start = datetime.datetime.now()
    re = function(*parameters)
    end = datetime.datetime.now()
    poor = (end - start).total_seconds()
    print("function:{} , use times:{}s".format(function.__name__, poor), end="\t")
    if poor > seconds:
        print("over second！")
    else:
        print()
    return re
def test1():  # 无输入参数
    time.sleep(2)
def test2():  # 无输入参数
    time.sleep(2)
    return "output"  # 有返回值
def test3(l):  # 可输入list/tuple/set等参数
    time.sleep(sum(l))
if __name__ == '__main__':
    main()
'''
这个程序虽然能够完成一定的功能，但是我感觉有些情况我并没有考虑到，写法上也并不高级
'''